<script>
    // 1.字面量方式创建对象 
    var obj1 = {
        a: 2,
        b: 3
    };

    // 2.使用构造函数创建对象 
    var obj = new Object();
    obj.name = '张三';
    obj.sayName = function() {
        console.log(this.name);
    }

    // 3.自定义构造函数 
    function CreateGf(name, height, sex, age) {
        this.name = name;
        this.height = height;
        this.sex = sex;
        this.age = age;
        this.sayName = function() {
            console.log('我叫' + this.name);
        }
    }

    var gf = new CreateGf('王冰冰', 168, '女', 18);
    console.log('gf', gf);
    // var gf2 = new CreateGf('李冰冰', 168, '女', 18);
    // console.log('gf2', gf2);

    // 4.工厂模式(批量制造)创建对象,相对比2的方法,创建2个对象时,sayName方法不需要写两遍 
    function madeCat(name, age) {
        var obj = new Object();
        obj.name = name;
        obj.age = age;
        obj.sayName = function() {
            console.log(obj.name);
        }
        return obj;
    }
    var cat1 = madeCat('小白', 2);
    var cat2 = madeCat('小花', 3);

    // 5. 原型模式创造对象,详看继承一节
</script>